export const validate = {
  // 固定电话校验，以0开头的区号+固话号码
  filterTelNumber: /(^1[356789]\d{9}$)|(^\(?0\d{2}[)-]?\d{8}$)|(^\(?0\d{3}[)-]?\d{7}$)/,
  // 手机校验，以1开头的11位数据
  filterMobileNumber: /^1\d{10}$/,
  // 邮箱校验
  filterEmail: /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/,
  // 邮编校验
  filterPostCode: /^[0-9]\d{5}(?!\d)$/,
  // 数字校验
  filterNum: /^[0-9]+$/,
  // 正整数校验
  filterNumInt: /^[1-9]\d*$/,
  // 项目名称校验，小写字母、数字或“-”，且“-”不能在首尾
  filterProjectName: /^([a-z0-9][a-z0-9-]*)?[a-z0-9]$/,
  // 手机校验，以1开头的11位数据
  filterPhoneNumber: /(^1\d{10}$)|(^09\d{8}$)/,
  // 用户密码校验，可包含大小字母、数字及特殊字符，特殊字符包括“[()`~!@#$%^&*-+=_|{}[]:;'<>,.?/]”
  filterPassword: /^[a-zA-Z0-9()`~!@#$%^&*\-+=_\|{}\[\]:;<>,.?/]*$/,
  // 应用名称校验，小写字母、数字或“-”，且“-”不能在首尾
  filterWorkloadName: /^[0-9a-z-]+$/,
  // 绝对路径校验
  filterFirstStrigula: /^[/][a-zA-Z0-9()`~!@#$%^&*-+=\|{}\[\]:;<>,.?/]*$/,
  // 应用-环境变量 变量名称校验 大小写字母、数字及 - _ .
  filterEnvironment: /^[-._a-zA-Z][-._a-zA-Z0-9]{0,255}$/,
  // 审批说明
  applyDescription: /^([A-Za-z0-9\u4e00-\u9fa5]){0,255}$/,
  // 1-65535的端口号检验
  filterSourcePort: /^([1-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-5]{2}[0-3][0-5])$/,
  // 相对路径校验
  filterPath: /^([a-zA-Z0-9()`~!@#$%^&*-+=\|{}\[\]:;<>,.?])([a-zA-Z0-9()`~!@#$%^&*-+=\|{}\[\]:;<>,.?/])*$/,
  // 应用-主机调度 标签主键校验  大小写英文字母、数字及- _ .
  fileSchedulingKey: /^([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]$/,
  // 应用-标签&注释 key 校验 大小写字母、数字、- _ . /，且字符不能在首尾
  filterLabelAnnotation: /^([A-Za-z0-9][-A-Za-z0-9_./]*)?[A-Za-z0-9]$/,
  // acl安全组规则校验
  filterRules: /^([1-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-2]\d{4}|3[0-1]\d{3}|32[0-6]\d{2}|327[0-5]\d|3276[0-6])$/,
  // 检验0-65535的端口 及 0-65535的范围端口
  filterPort:
    /^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$|^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])-([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/,
  // CIDR 校验
  filterCIDR:
    /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\/(\d|(1\d)|(2\d)|(3[0-2]))$/,
  // CIDR16 校验
  filterCIDR16:
    /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\/((1[6-9])|(2[0-8]))$/,
  // IP地址校验
  filterIPAddress:
    /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,
  // 多个IP地址校验
  filterIPAddressMulti:
    /^((([1-9][0-9]?)|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.((0)|([1-9][0-9]?)|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.((0)|([1-9][0-9]?)|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.((0)|([1-9][0-9]?)|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5])),)*(([1-9][0-9]?)|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.((0)|([1-9][0-9]?)|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.((0)|([1-9][0-9]?)|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.((0)|([1-9][0-9]?)|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))+$/,
  // 主机名校验
  filterHostName: /^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$/,
  // 负载均衡名称和存储类名称校验 校验 小写英文字母、数字及-  .且字符不能在首尾
  filterIngressName: /^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$/,
  // 服务发现名称校验 小写英文字母、数字及-，且-与数字不能在首尾
  filterDNSName: /^[a-z]([-a-z0-9]*[a-z0-9])?([a-z0-9]([-a-z0-9]*[a-z])?)*$/,
  // 密文项、配置项校验 大小写英文字母、数字及- _ .
  filterSecretConfigMapKey: /^([a-zA-Z0-9][-._a-zA-Z0-9]*)?[a-zA-Z0-9]$/,
  // 镜像库名称校验
  filterRegistryName: /^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/,
  // “-”不能在首尾 与应用名称校验结合使用
  filterStrigula: /^[-]|[-]+$/,
  // 负载均衡绝对路径校验 小写英文字母、数字及- _ .且字符不能在首尾
  filterIngressRulePath: /^[/]+[\w\d\-\_\/]+|[\w\d\-\_]+[/]+[\w\d\-\_\/]*$/,
  // 持久卷名称校验，小写字母、数字、“.”“-”字符，且只能字母、数字作为首尾
  filterStoragePV: /^([a-z0-9][a-z0-9-.]*)?[a-z0-9]$/,
  // 创建DHCP选项集IP地址验证规则
  filterDHCPIp: /^(\d{1,3})(\.(\d{1,3})){3}(,(\d{1,3})(\.(\d{1,3})){3})*/,
  // 域名必须包含字母数字、连字符、逗号和. 并且不能以逗号.连字符开头和结尾
  filterDomainName: /^[a-zA-Z0-9]([a-zA-Z0-9\-]+(?=\.)+[a-zA-Z0-9\-\.]+[\,]?)+[a-zA-Z0-9]$/,
  // NetBIOS 节点类型必须介于 -128 和 127 之间
  filterNetNode: /^\-([1-9]|[1-9]\d|1[0-1]\d|12[0-8])$|^([0-9]|[1-9]\d|1[0-1]\d|12[0-7])$/,
  // 数据库实例标识符校验，第一个字符必须是字母,不能以连字符结束或包含两个连续连字符,必须包含 1 到 63 个字母数字字符或连字符
  filterDBInstanceID: /^[a-zA-Z][\-]?[0-9]*[\-]?[a-zA-Z]*[\-]?[0-9]*[\-]?[a-zA-Z]*[0-9]*[^\-]$/,
  // 数据库主密码校验，至少输入8个字符
  filterDBpassword: /^\S{8,}$/,
  // rds快照名称校验 必须包含 1 到 255 个字母数字字符或连字符。第一个字符必须是字母。不能以连字符结束，也不能包含两个连续的连字符。
  filterRdsSnapshot: /^[a-z]+[\-]?[a-z0-9]*$/,
  // rds 子网组创建名称验证规则  以字母开头;必须只包含字母、数字和连字符;并且不能以连字符结束或包含两个连续的连字符。
  filterSubnet: /^[a-zA-Z]+[\-]?[a-z0-9]*$/,
  // ElastiCache 备份快照标识符，只能输入3——63个字符，并且必须以字母开头，只能包含ASCII字母、数字和连字符；不能以连字符结尾或包含两个连续的连字符
  filterBack: /^[a-zA-Z]{1}([\-]?[a-zA-Z0-9]+){1,61}[a-zA-Z0-9]{1}$/,
  // memcahed  添加校验  正整数
  filterPositive: /^[0-9]*[1-9][0-9]*$/,
  // 目标群组创建 正常值  2--10 的正整数
  filterNormalThreshold: /^([2-9]|10)$/,
  // 目标组创建 成功代码 只能包含数字 逗号 连字符
  filterSuccessCode: /^([0-9][0-9-,]*)?[0-9]$/,
  // 通用名称校验，只能输入小写及大写字母、数字或“-”，最大长度32位
  filterName: /^[0-9a-zA-Z\-]{1,32}$/,
  // 通用资源名称校验，1-64个字符，允许包含中文、大小写字母、数字、'-'（连字符）、'.'（Dot）、'_'（下划线
  filterResName: /^([A-Za-z0-9\u4e00-\u9fa5\.\_\-]){1,64}$/,
  // 数据库名称校验，只能输入小写及大写字母、数字,并且必须以字母开头,长度小于等于8
  filterDBName: /^[a-zA-Z]{1}[0-9a-zA-Z]{0,7}$/,
  // 用户账号命名，以英文字母开头，只能包含英文字母、数字、下划线
  userName: /^[a-zA-Z][a-zA-Z0-9_]{4,19}$/,
  // 可以输入 a-z A-Z 0-9 _ - . $ / ~ " ' @ : + & ? 最大长度为64字符
  filterRulePath: /^([A-Za-z0-9\.\@\$\&\_\-\/\~\'\"\+\:\&\?]){1,64}$/,
  // 必须以/开头
  filterRulePath2: /^\/([A-Za-z0-9\.\@\$\&\_\-\/\~\'\"\+\:\&\?]){1,64}$/,
  // 可以输入 a-z A-Z 0-9 . ? * 必须包含 . 不能以 . 开头或者结尾
  filterRuleIns: /^[A-Za-z0-9\?\*]+([.][A-Za-z\?\*]+)+$/,
  // 2xx 4xx 5xx状态码检验
  filterCode: /^([2]\d{2}|[4]\d{2}|[5]\d{2})$/,
  // 正则表达式匹配所有ASCII可打印字符
  filterASCII: /[\x00-\xff]+/,
  // 用户名密码：必须包含大小写字母，数字，特殊字符四项 8-32位
  filterUserPassword: /^(?=.*?[A-Z])(?=(.*[a-z]){1,})(?=(.*[\d]){1,})(?=(.*[\W]){1,})(?!.*\s).{8,32}$/,
  // 创建桶名称规则   仅支持 小写字母，数字，句点"."，短划线"-"（不支持大写字母！）2. 必须以 小写字母 或 数字 开头和结尾,不允许存在连续的句点".."，不允许存在相邻的句点和短划线（允许连续的短划线"--"）,长度必须在 3-63 个字符
  filterBucket: /^[a-z0-9]{1}([a-z0-9]+([.](?=[a-z0-9]+))*[-]*[a-z0-9]*){1,61}[a-z0-9]{1}$/,
  // 创建网络的
  filterNamenetwork: /^[a-zA-Z0-9\_\-\.\u4E00-\u9FA5]+$/,
  filterWorkflowName: /^[a-zA-Z0-9\_\-\.\@\&\u4E00-\u9FA5]+$/,
  // 密码
  filter_passwordT:
    /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9()`~!@#$%^&*\-+=\|{}\[\]:;'<>,.?/]{8,30}$/,
  filter_password:
    /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9()`~!@#$%^&*\-+=\|{}\[\]:;'<>,.?/]{8,30}$/,
  // 网络地址
  filterCidro:
    /^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])\/([1-9]|[1-2][0-9]|30|31|32)$/,
  filterCidr:
    /^(25[0-5]|2[0-4][0-9]|[1-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[1-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[1-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[1-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])\/([1-9]|[1-2][0-9]|30)$/,
  // ip地址
  filterIP:
    /^(25[0-5]|2[0-4][0-9]|[1-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[1-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[1-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[1-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/,
  baidu: {
    // 百度密码校验  8～32位字符，英文、数字和符号必须同时存在，符号仅限!@#$%^*()
    password: /^(?=.*[0-9])(?=.*[a-z])(?=.*[!@#$%^*（)])[0-9a-zA-Z!@#$%^*()]{8,32}$/,
    // 支持小写字母、数字以及“-”、“ .“ 特殊字符，不可连续使用特殊符号，必须以字母开头，不支持特殊符号结尾
    name: /^[a-z]{1}([\-\.]?[a-z0-9])+$/,
    // 大小写字母、数字、中文以及-_/.特殊字符，必须以字母或者中文开头，长度2-65
    instanceName: /^[\u4E00-\u9FA5a-zA-Z]{1}[\u4E00-\u9FA5A-Za-z0-9\-\_\/\.]{0,63}$/,
    // 检查路径规范：1.由字母、数字及字符-/.%?#&组成；2.长度在1-80之间。
    checkPath: /^[0-9a-zA-Z\-/.%?#&]{1,80}$/,
    // 数字 字母 1-256
    CookieName: /^[0-9a-zA-Z]{1,256}$/
  },
  filter_ip_address:
    /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,
  filter_mac_address: /[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}:[A-Fa-f0-9]{2}/,
  // 有无掩码都行
  filter_ip:
    /^(25[0-5]|2[0-4][0-9]|[1-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])\.(25[0-5]|2[0-4][0-9]|[1-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[1-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[1-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])(\/([0-9]|[1-2][0-9]|30|31|32))?$/
};
